 #include<array>
// position 为每个元素的下标，这样在我们使用范围for时，又能得到position值
// 避免lifetime issues,即变量的生命周期问题？？
struct S
{
    std::array<int,3> data={1,2,3};
    const auto &get_data()
    {
        return data;
    }
};
S get_S()
{
    return S{};
}

int main()
{
    auto total=0;
    // 错误的代码，存在使用已经销毁的临时变量问题???
    // for(const auto v:get_S.get_data())
    // {
    //     total+=v;
    // }
    for(auto s=get_S();const auto v:s.get_data())
    {
        total+=v;
    }
    return total;
}

